Články

Navigačný panel

JWT - JsonWebToken ručne

Návod ako pracovať ručne s JavaWebToken-om ktorý sa používá u Bearer typu autorizácie pri HTTP protokole.



Popis

Kód kde sa podpisovanie/kontrola robí ručne kde sa dá pochopiť jak to funguje.

Skript

#!/bin/bash

#subor ktory obsahuje tvoj JWT
file="payload.txt"

echo "########### "Vloz JWT podpisany Googlom:
read content
echo

echo $content > $file

echo

#funkcia na upravu base64, standartne sa zaokruhluje, u JWT nie
decode_base64_url() {
local len=$((${#1} % 4))
local result="$1"
if [ $len -eq 2 ]; then result="$1"'=='
elif [ $len -eq 3 ]; then result="$1"'='
fi
echo "$result" | tr '_-' '/+' | openssl enc -d -base64
}

#vytiahni casti z JWT
cat $file | cut -d'.' -f1 >payload1.raw
cat $file | cut -d'.' -f2 >payload2.raw
cat $file | cut -d'.' -f3 >payload3.raw

#priprav a zobraz casti ktore su podpisane
echo "########### Podpisane data:"
decode_base64_url $( cat payload1.raw )
echo -n "."
decode_base64_url $( cat payload2.raw )
echo -n $(cat payload1.raw)"."$(cat payload2.raw) > payload12.raw

#priprav podpis
decode_base64_url $( cat $file | cut -d'.' -f3 ) >payload3.txt

echo
echo

#prejdi cez vsetky verejne kluce a najdi ktory funguje
for F in $( ls "/tmp/google_ca_history/" | grep -v google )
do
echo "#########"
echo Kontrola podpisu pomocou: /tmp/refresh_cert/"$F"
openssl dgst -sha256 -verify "/tmp/google_ca_history/"$F -signature payload3.txt payload12.raw
echo
done

Zdroje

https://medium.com/@bn121rajesh/rsa-sign-and-verify-using-openssl-behind-the-scene-bf3cac0aade2

https://stackoverflow.com/questions/59002949/how-to-create-a-json-web-token-jwt-using-openssl-shell-commands

https://techdocs.akamai.com/iot-token-access-control/docs/generate-jwt-rsa-keys


Príspevok pridaný dňa: 25.07.2023 od užívatela: Dodoslav.
Zanechat komentár:

Nick:

Správa: